package output;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.LinkedList;


public class EscribirArchSalidaEj1 implements Output {
	
		private String nombArch;
		private File arch1;
		private BufferedWriter bw;
		
		public EscribirArchSalidaEj1(String nomb){
			nombArch=nomb;		
		}
		public void AbrirArchivo() throws Exception
		{	

			arch1 = new File(nombArch); 
			bw = new BufferedWriter( new FileWriter(arch1));
		

	}	
		public void writeFile(String res)throws Exception{
			
			bw.write(res);	
			bw.newLine();
				
		}
		
		public void writeFileSinNewLine(String res)throws Exception{
			
			bw.write(res);
				
		}
		public void CerrarArchivo() throws Exception{
			
			bw.close();
			
		}
		
		public static void deListaAArchivo(LinkedList<int[]> lista, String nombArch)throws Exception{
			output.EscribirArchSalidaEj1 escritor = new EscribirArchSalidaEj1(nombArch);
			
			escritor.AbrirArchivo(); ///abre "todosIguales.in.txt" o "sinRepetidos.in.txt"
			while(!lista.isEmpty()){
				///va pasando de a 2 porque voy tomando de apares los arreglos
				int[] array1 = lista.pollFirst();
				int[] array2 = lista.pollFirst();
				String linea = ""; ///tuve que ponerle que sea el string vacío sino me tiraba error
				for(int i=0; i < array1.length; i++){
					String num = String.valueOf(array1[i]);
					if(i==0) linea = linea.concat(num);
					else{
						linea = linea.concat(" ");
						linea = linea.concat(num);
					}

				}
				escritor.writeFile(linea);
				linea = "";
				for(int i=0; i < array2.length; i++){
					String num = String.valueOf(array2[i]);
					if(i==0) linea = linea.concat(num);
					else{
						linea = linea.concat(" ");
						linea = linea.concat(num);
					}

				}
				if(lista.isEmpty())escritor.writeFileSinNewLine(linea); ///si la lista quedó vacía, entonces es el último
				///elemento del .txt y tiraría error si lo terminamos con un endl.
				else escritor.writeFile(linea);
			}	
			escritor.CerrarArchivo();
		}

	}


